package main

import "fmt"

/*
*
空接口可以存储任意类型的值，那我们如何获取其存储的具体数据呢？
接口值：一个接口的值（简称接口值）是有一个具体类型和具体类型的值 两部分组成的。这两部分分别称为接口的动态类型和动态值。

想要判断空接口的值，这个时候就可以使用类型断言，其语法格式是：
x.(T)

	其中：x:一个类型为interface的变量
		 T:断言x可能是的一个具体类型

该语法返回两个参数，第一个参数是x转化为T类型后的变量，第二个值是一个布尔值，若为true 则表示断言成功，为false则表示断言失败
*/
func main() {
	var x interface{}
	x = "pprof.cn"
	v, ok := x.(string) //判断 x 是字符串类型
	if ok {             //true
		fmt.Println(v)
	} else { //false
		fmt.Println("类型断言失败")
	}
}

//如果需要多次断言我么可以使用switch语句来实现。

//关于接口需要注意的是，只有当有 两个或两个以上的具体类型 必须以相同的方式进行处理 时才需要定义接口
